共计 3955 个字符,预计需要花费 10 分钟才能阅读完成。
Docker搭建TeamSpeak服务器
一.服务器选型
- 腾讯云 / 阿里云等轻量云服务器
- 优先选择学生优惠和香港服务器
- 系统镜像选择
CentOS 7.9
Ubuntu 22.04
Debian 12.5
,优先选用Debian
二、环境配置
名称 | IP地址 | 安装的软件 | 硬件配置 | 系统 |
TeamSpeak Server | 10.0.16.17 | Docker,Docker-compose | 2核4G | CentOS 7.9.2009 |
本次服务器采用腾讯云无忧轻量服务器,CentOS7 7.6镜像,内核升级为6.9.4,关于内核加速自己根据系统搜索对应教程安装即可(非必须)。
使用Docker一键安装脚本
curl -fsSL https://get.docker.com | sh
# docker -v
Docker version 27.0.3, build 7d4bcd8
# docker compose --version
Docker Compose version v2.28.1
下面以CentOS 7为例手动安装
# 安装必备工具
yum install yum-utils device-mapper-persistent-data lvm2 -y
# 国内服务器配置阿里云Docker源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 境外服务器配置官方Docker源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 指定版本安装,本次选择25.0.x版本
yum install docker-ce-25.0.* docker-ce-cli-25.0.* -y
# 设置开机启动服务并立即启动
systemctl enable docker --now
# 最新版Docker已经集成Docker-compose,无需再次安装,只需验证即可
docker compose --version
vim /etc/docker/daemon.json
{
"registry-mirrors":
[
"https://docker.kejilion.pro"
],
"exec-opts": [
"native.cgroupdriver=systemd"
],
"max-concurrent-downloads": 10,
"max-concurrent-uploads": 5,
"log-driver": "json-file",
"log-opts": {
"max-size": "30m",
"max-file": "3"
},
"storage-driver": "overlay2",
"default-shm-size": "128M",
"debug": false,
"ipv6": false
}
# 设置完成后重启docker
systemctl daemon-reload && systemctl restart docker
三、配置TeamSpeak
新建一个Docker数据目录,一是方便归纳数据存储目录,二是迁移方便
mkdir -p /data/docker_data
cd !$ && mkdir teamspeak && cd teamspeak
新建docker-compose.yml
文件,Teamspeak dockerhub镜像仓库
境内服务器自行打开注释,并注释掉Docker官方的镜像使用阿里云镜像
# docker-compose.yml
services:
teamspeak:
#registry.cn-chengdu.aliyuncs.com/honeok/teamspeak:3.13.7
image: teamspeak:3.13.7
container_name: teamspeak
restart: unless-stopped
ports:
- '9987:9987/udp' # 语音服务
- '10011:10011' # 服务器查询 raw(可选)
#- '10022:10022' # 服务器查询 SSH(可选)
#- '10080:10080' # 网络请求 http(可选)
#- '10443:10443' # 网络请求 https(可选)
- '30033:30033' # 文件传输
#- '41144:41144' # DNS域名解析(可选)
volumes:
- ./ts3server:/var/ts3server
networks:
- teamspeak
environment:
- TS3SERVER_DB_PLUGIN=ts3db_mariadb
- TS3SERVER_DB_SQLCREATEPATH=create_mariadb
- TS3SERVER_DB_HOST=db
- TS3SERVER_DB_USER=teamspeak
- TS3SERVER_DB_PASSWORD=teamspeak # 数据库密码,可自行修改但需和下方数据库变量对应
- TS3SERVER_DB_NAME=teamspeak
- TS3SERVER_DB_LOG_DAYS=30 # 日志保留天数
- TS3SERVER_DB_WAITUNTILREADY=30
- TS3SERVER_DB_CLIENTKEEPDAYS=1 # 保留未使用的用户标识的天数
- TS3SERVER_LICENSE=accept
depends_on:
- db
db:
#registry.cn-chengdu.aliyuncs.com/honeok/mariadb:11.4.2
image: mariadb:11.4.2
container_name: teamspeak_db
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=b%aDSmGDFQ&6KaXm
- MYSQL_DATABASE=teamspeak
- MYSQL_USER=teamspeak
- MYSQL_PASSWORD=teamspeak
volumes:
- ./mariadb:/var/lib/mysql # 数据持久化,否则重启数据丢失,后续也无法迁移
networks:
- teamspeak
command:
- "--character-set-server=utf8mb4"
networks:
teamspeak:
driver: bridge
四、启动TeamSpeak服务器
# 后台运行
docker compose up -d
# 关闭服务
docker compose down
# 重启服务
docker compose restart
用TS客户端连接服务器,会弹出对话框要求输入token,输入token后这个账号就是管理员了
- 第一次启动时会弹出
Server Query
管理员账号密码和token
,务必妥善保存 - 如果用
docker compose up -d
启动,在当前路径查看日志docker compose logs -f
# 记录下关键值
teamspeak | ------------------------------------------------------------------
teamspeak | I M P O R T A N T
teamspeak | ------------------------------------------------------------------
teamspeak | Server Query Admin Account created
teamspeak | loginname= "serveradmin", password= "vsZWNew9"
teamspeak | apikey= "BABMrxgp_HFPhtCSEQ_LhWIvkQNUVhI_YhQTnG6"
teamspeak | ------------------------------------------------------------------
teamspeak | ------------------------------------------------------------------
teamspeak | I M P O R T A N T
teamspeak | ------------------------------------------------------------------
teamspeak | ServerAdmin privilege key created, please use it to gain
teamspeak | serveradmin rights for your virtualserver. please
teamspeak | also check the doc/privilegekey_guide.txt for details.
teamspeak |
teamspeak | token=3AlBCVkcTfxXKfysC2jWR7mAAOAmhSTpkMM1M2Uo
teamspeak | ------------------------------------------------------------------
五、开放规则
云服务器的防火墙设置页添加如下入站规则
- 9987 UDP (语音)
- 10011 TCP (ServerQuery)
- 30033 TCP (文件传输,如需上传频道图标需开启)
- 其他端口根据自身需求开放
六、域名解析
- 添加一条A类型的规则,指向服务器ip地址。此处 ts -> xxx.xxx.xxx.xxx 即解析域名 ts.honeok.com
- 添加一条SRV类型的规则,如图所示:
七、使用客户端连接
使用上述记录的token
即可成功登录
图标优化teamspeak服务器 Teamspeak ions
正文完